package com.property.cleaning.common;

/**
 * 响应码枚举类
 * 
 * @author Property Cleaning System
 */
public enum ResultCode {

    // 成功状态码
    SUCCESS(200, "操作成功"),
    
    // 错误状态码
    ERROR(500, "操作失败"),
    
    // 参数错误
    VALIDATE_ERROR(400, "参数错误"),
    
    // 未授权
    UNAUTHORIZED(401, "未授权"),
    
    // 无权限
    FORBIDDEN(403, "无权限"),
    
    // 未找到
    NOT_FOUND(404, "资源不存在"),
    
    // 请求超时
    TIMEOUT(408, "请求超时"),
    
    // 系统繁忙
    TOO_MANY_REQUESTS(429, "系统繁忙"),
    
    // 业务异常
    BUSINESS_ERROR(1001, "业务异常"),
    
    // 数据已存在
    DATA_EXIST(1002, "数据已存在"),
    
    // 数据不存在
    DATA_NOT_EXIST(1003, "数据不存在"),
    
    // 登录失败
    LOGIN_ERROR(1004, "登录失败"),
    
    // 账号已禁用
    ACCOUNT_DISABLED(1006, "账号已禁用"),
    
    // 文件上传失败
    FILE_UPLOAD_ERROR(1007, "文件上传失败"),
    
    // 文件格式错误
    FILE_FORMAT_ERROR(1008, "文件格式错误"),
    
    // 文件大小超限
    FILE_SIZE_ERROR(1009, "文件大小超限"),
    
    // 区域相关
    AREA_NOT_FOUND(2001, "区域不存在"),
    AREA_CODE_EXISTS(2002, "区域编码已存在"),
    AREA_HAS_CHILDREN(2003, "区域包含子区域，无法删除"),
    PARENT_AREA_NOT_FOUND(2004, "父区域不存在"),
    
    // 楼栋相关
    BUILDING_NOT_FOUND(3001, "楼栋不存在"),
    BUILDING_CODE_EXISTS(3002, "楼栋编码已存在"),
    
    // 楼层相关
    FLOOR_NOT_FOUND(4001, "楼层不存在"),
    
    // 房间相关
    ROOM_NOT_FOUND(5001, "房间不存在"),
    ROOM_CODE_EXISTS(5002, "房间编码已存在"),
    
    // 保洁任务相关
    CLEANING_TASK_NOT_FOUND(6001, "保洁任务不存在"),
    
    // 参数错误
    PARAM_ERROR(1004, "参数错误"),
    
    // 用户相关错误
    USER_NOT_FOUND(3001, "用户不存在"),
    USERNAME_EXISTS(3002, "用户名已存在"),
    PASSWORD_ERROR(3003, "密码错误"),
    EMAIL_EXISTS(3004, "邮箱已存在"),
    PHONE_EXISTS(3005, "手机号已存在"),
    USER_DISABLED(3006, "用户已被禁用"),
    
    // 系统错误
    SYSTEM_ERROR(9999, "系统错误");

    private final Integer code;
    private final String message;

    ResultCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Integer getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}